草庐IT

Java Xpath 表达式

全部标签

php - 正则表达式:如何查找后跟非字母数字的字符串

我正在尝试使用正则表达式(在php中)来查找必须后跟非字母数字字符(不区分大小写)的特定字符串。ExampleString:Doggyisalazydog!Doggy.DogandI.SearchString:DogExpectedResult:Doggyisalazydog!Doggy.DogandI.所以它不应该匹配“Doggy”,因为Dog子字符串后面没有跟一个非字母数字字符。我正在按照这些思路尝试一些事情,但它并没有完全按照我的意愿行事。preg_replace("/(dog)[^a-zA-Z0-9\s\p]/i/","",$str); 最佳答案

php - 什么是替换行结尾的跨平台正则表达式?

我有一个类似"foo\nbar"的字符串,但根据平台的不同,它可能会变成"foo\n\rbar"或其他任何形式。我想用","替换新行。有没有适合我的(php)正则表达式? 最佳答案 试试正则表达式(?:\r\n|[\r\n]):preg_replace('/(?:\r\n|[\r\n])/',',',$str) 关于php-什么是替换行结尾的跨平台正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

Php正则表达式匹配一个div

这是我的代码(.*)\}",$innerHtml,$matches);//var_dump($matches);?>我想在divid='news-id-160346'中找到所有内容。请帮助我 最佳答案 UseanHTMLparser.NOTregularexpressions.正则表达式的问题在于它们无法匹配嵌套结构。假设您的正则表达式必须匹配单个及其结束标记,无法正确匹配此输入:FooBar因为如果你的正则表达式是贪婪的,它会匹配最上面的两个div,如果它不贪婪,它就不会匹配正确的结束标签。因此,您应该使用HTML解析器。使用PH

用于 IP 到位置 API 的 PHP 正则表达式

我如何使用正则表达式获取有关IP到位置API的信息这是APIhttp://ipinfodb.com/ip_query.php?ip=74.125.45.100我需要获取国家/地区名称、地区/州和城市。我试过这个:$ip=$_SERVER["REMOTE_ADDR"];$contents=@file_get_contents('http://ipinfodb.com/ip_query.php?ip='.$ip.'');$pattern="/(.*)/";preg_match($pattern,$contents,$regex);$regex=!empty($regex[1])?$rege

php - 爆炸的病态正则表达式(时间和内存)?

什么是破坏许多解析器(时间和内存)的病态正则表达式?哪些解析器?正则表达式越基础和标准,非恶意用户无意中想出它的可能性就越大。请随意发布实际时间和内存数据以及解析器版本。(我似乎记得在PERL中过度的回顾断言或(编辑:)回溯据说可以做到这一点,或者至少曾经是。还有别的吗?) 最佳答案 改编自文章RegularExpressionMatchingCanBeSimpleAndFast(butisslowinJava,Perl,PHP,Python,Ruby,...)中的第一个示例:perl-e'$n=29;("a"x$n)=~(("a?

java - 重构 JSP 中的 EL 表达式

我有许多带有EL表达式的JSP文件,格式为${foo.bar.baz.phleem1}、${foo.bar.baz.phleem2}等.(前两段或三段相等)。为了减少EL查找,我正在重构这些页面:来源:重构后:我知道我可以通过搜索/替换来完成大部分工作,但感觉不安全,因为它忽略了代码结构。Eclipse或IntelliJIdea是否支持此类重构? 最佳答案 也许你可以在emacs中使用nxml-mode。(我没有测试过)有一些功能,如nxml-up-element。我打赌你可以创建一个强大的宏。但我认为grep代码并手动执行更容易。

java - 正则表达式查找方法调用

我想在给定代码中找到任何方法调用。我用分号作为分隔符来分割代码。最后,我有兴趣查找在给定代码中调用的方法的名称。我需要一个正则表达式来匹配方法调用模式。 最佳答案 对于限定调用{即以这种形式调用:[objectName|className].methodName(..)},我一直在使用:(\.[\s\n\r]*[\w]+)[\s\n\r]*(?=\(.*\))当出现不合格的调用时{即以这种形式调用:methodName(..)},我一直在使用:(?!\bif\b|\bfor\b|\bwhile\b|\bswitch\b|\btry\

java - 简化复杂的正则表达式

我正在寻找一种方法来简化由值(例如12345)、关系符号(、=)和连接符(&、!)组成的正则表达式。例如。表达式:>=12345&应该匹配。我有这个正则表达式:(^=|^>=|^|^|^)((!|)([0-9]{1,5}))(&>|&=|&>=|&=|&|&|&|&|$))*我对表达式开头和结尾处重复的=、特别不满意。我很乐意得到如何让它更简单的提示,例如向前看,向后看。 最佳答案 从您的正则表达式开始,您可以执行以下简化步骤:(^=|^>=|^|^|^)((!|)([0-9]{1,5}))(&>|&=|&>=|&=|&|&|&|&

Java - 获取数字格式的正则表达式

我有这个:110121自然色951570,40110121自然色951570,40*41,1101x38,20捷克克朗)[A]*'31,831261,7911308,61)>01572PRAVOSO17,001,000ksx17,001570,40此输出的每一行都保存在列表中,我想获得编号1570,40对于这种格式,我的正则表达式看起来像这样"([1-9][0-9]*[\\.|,][0-9]{2})[^\\.\\d](.*)""^([1-9][0-9]*[\\.|,][0-9]{2})$"我有一个问题,如果找到了最后一行的1570,40(通过第二个正则表达式),还有1570,40(来自

java - 正则表达式测试失败 - Java

我正在尝试执行简单的正则表达式。本质上,我想确定我的字符串中是否有特殊字符,如果有,则检查字符串的每个字符是否有两个特定字符,即连字符和点。我似乎在第一位遇到了问题,涉及确定我的字符串中是否有特殊字符。下面是我尝试执行此操作的方法,后面是我遇到问题的字符串:publicstaticbooleanstringValidity(Stringinput){intspecials=0;Patternp=Pattern.compile("[^a-zA-Z0-9]");Matcherm=p.matcher(input);booleanb=m.find();if(b){System.out.prin